using namespace std;
#include<iostream>
#include<signal.h>
#include<unistd.h>
void showSet(sigset_t *set)
{
    for(int i=31;i>0;i--)
    {
        if(sigismember(set,i))
        {
            cout<<"1";
        }
        else
        {
            cout<<"0";
        }
    }
    cout<<endl;
}
void handler(int sig)
{
    cout<<"get sig:"<<sig<<endl;
    sigset_t block_set;
    sigset_t tmp;
    sigemptyset(&block_set);
    sigprocmask(SIG_BLOCK,&tmp,&block_set);
    cout<<"block:";
    showSet(&block_set);
    exit(0);
}
int main()
{
    struct sigaction act;
    act.sa_handler=handler;
    act.sa_flags=0;
    sigemptyset(&act.sa_mask);
    for(int i=1;i<=5;i++)
    {
        sigaddset(&act.sa_mask,i);
    }
    sigaction(2,&act,NULL);
    while(true);
    return 0;
}